package generator.com.link.order.model;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.Size;
import javax.validation.constraints.NotNull;

import java.io.Serializable;

import java.util.Date;
import io.swagger.annotations.ApiModelProperty;
import org.hibernate.validator.constraints.Length;

/**
* 订单表
* @TableName link_order
*/
public class OrderDO implements Serializable {

    /**
    * 主键
    */
    @NotNull(message="[主键]不能为空")
    @ApiModelProperty("主键")
    private Long orderId;
    /**
    * 用户ID
    */
    @ApiModelProperty("用户ID")
    private Long userId;
    /**
    * 请求幂等号
    */
    @ApiModelProperty("请求幂等号")
    private Long requestId;
    /**
    * 用户姓名
    */
    @Size(max= 32,message="编码长度不能超过32")
    @ApiModelProperty("用户姓名")
    @Length(max= 32,message="编码长度不能超过32")
    private String userName;
    /**
    * 用户邮箱
    */
    @Size(max= 32,message="编码长度不能超过32")
    @ApiModelProperty("用户邮箱")
    @Length(max= 32,message="编码长度不能超过32")
    private String userEmail;
    /**
    * 订单状态
    */
    @Size(max= 32,message="编码长度不能超过32")
    @ApiModelProperty("订单状态")
    @Length(max= 32,message="编码长度不能超过32")
    private String status;
    /**
    * 订单总金额
    */
    @ApiModelProperty("订单总金额")
    private Long totalAmount;
    /**
    * 拓展字段
    */
    @Size(max= 4096,message="编码长度不能超过4096")
    @ApiModelProperty("拓展字段")
    @Length(max= 4,096,message="编码长度不能超过4,096")
    private String extInfo;
    /**
    * 业务失败错误码
    */
    @Size(max= 64,message="编码长度不能超过64")
    @ApiModelProperty("业务失败错误码")
    @Length(max= 64,message="编码长度不能超过64")
    private String failCode;
    /**
    * 业务失败描述
    */
    @Size(max= 256,message="编码长度不能超过256")
    @ApiModelProperty("业务失败描述")
    @Length(max= 256,message="编码长度不能超过256")
    private String failMessage;
    /**
    * 创建时间
    */
    @NotNull(message="[创建时间]不能为空")
    @ApiModelProperty("创建时间")
    private Date createTime;
    /**
    * 修改时间
    */
    @NotNull(message="[修改时间]不能为空")
    @ApiModelProperty("修改时间")
    private Date updateTime;
    /**
    * 完成时间
    */
    @ApiModelProperty("完成时间")
    private Date finishTime;

    /**
    * 主键
    */
    private void setOrderId(Long orderId){
    this.orderId = orderId;
    }

    /**
    * 用户ID
    */
    private void setUserId(Long userId){
    this.userId = userId;
    }

    /**
    * 请求幂等号
    */
    private void setRequestId(Long requestId){
    this.requestId = requestId;
    }

    /**
    * 用户姓名
    */
    private void setUserName(String userName){
    this.userName = userName;
    }

    /**
    * 用户邮箱
    */
    private void setUserEmail(String userEmail){
    this.userEmail = userEmail;
    }

    /**
    * 订单状态
    */
    private void setStatus(String status){
    this.status = status;
    }

    /**
    * 订单总金额
    */
    private void setTotalAmount(Long totalAmount){
    this.totalAmount = totalAmount;
    }

    /**
    * 拓展字段
    */
    private void setExtInfo(String extInfo){
    this.extInfo = extInfo;
    }

    /**
    * 业务失败错误码
    */
    private void setFailCode(String failCode){
    this.failCode = failCode;
    }

    /**
    * 业务失败描述
    */
    private void setFailMessage(String failMessage){
    this.failMessage = failMessage;
    }

    /**
    * 创建时间
    */
    private void setCreateTime(Date createTime){
    this.createTime = createTime;
    }

    /**
    * 修改时间
    */
    private void setUpdateTime(Date updateTime){
    this.updateTime = updateTime;
    }

    /**
    * 完成时间
    */
    private void setFinishTime(Date finishTime){
    this.finishTime = finishTime;
    }


    /**
    * 主键
    */
    private Long getOrderId(){
    return this.orderId;
    }

    /**
    * 用户ID
    */
    private Long getUserId(){
    return this.userId;
    }

    /**
    * 请求幂等号
    */
    private Long getRequestId(){
    return this.requestId;
    }

    /**
    * 用户姓名
    */
    private String getUserName(){
    return this.userName;
    }

    /**
    * 用户邮箱
    */
    private String getUserEmail(){
    return this.userEmail;
    }

    /**
    * 订单状态
    */
    private String getStatus(){
    return this.status;
    }

    /**
    * 订单总金额
    */
    private Long getTotalAmount(){
    return this.totalAmount;
    }

    /**
    * 拓展字段
    */
    private String getExtInfo(){
    return this.extInfo;
    }

    /**
    * 业务失败错误码
    */
    private String getFailCode(){
    return this.failCode;
    }

    /**
    * 业务失败描述
    */
    private String getFailMessage(){
    return this.failMessage;
    }

    /**
    * 创建时间
    */
    private Date getCreateTime(){
    return this.createTime;
    }

    /**
    * 修改时间
    */
    private Date getUpdateTime(){
    return this.updateTime;
    }

    /**
    * 完成时间
    */
    private Date getFinishTime(){
    return this.finishTime;
    }

}
